To aid understanding of the technical context of the innovations claimed herein, several references are discussed below. This discussion is meant to help promote a full and accurate examination of the claims presented.
However, there are also limits on the inferences one can properly draw from this discussion. These references were identified with the present claims in mind, and the observations made here about the references are likewise guided by the present claims. One of skill would not necessarily have combined any of these references or made such observations without the benefit of hindsight. The mere fact that two or more of the references are discussed here is not evidence of a motivation to combine those references at the time of invention without using the present claims as a blueprint.
Moreover, the inclusion of a reference in this discussion is not a blanket acceptance of every statement made in the reference; what the references recite is not necessarily correct. Each reference must also be considered independently of this discussion to fully understand the reference's teachings, as only a brief space is allotted to any given reference here and each reference speaks for itself. The reference recitations noted here are not meant to be a full description, or even a complete overview or summary, of the teachings of any reference. Other references may also be considered worthy of attention.
Also, a reference may use terms differently than they are used here in describing the innovations claimed, and two different references may use the same term differently. Nor is the inclusion of a reference in this discussion evidence that the reference is enabling with regard to a particular claim, or indeed, with regard to any claim that is presented here.
The following discussion of references begins by pointing out some things that are not present in any of the references. These gaps in the references are worthy of attention, but they are merely examples of how the references could be considered. In particular, it does not follow that something X is present in the references merely because the discussion did not say that X was missing from the references.
Bearing these guidelines in mind, the reference discussion will now proceed.
None of these references mention an “executable order” for “chunks” of a firmware image. None recite “re-ordering” or “re-sequencing” firmware image chunks that were received in some order other than the executable order.
With regard to destructively overwriting flash memory chunks, the only mention of “destructive” in any of these references is in Zimmer (2005/0021968) paragraph [0048] which recites a “non-destructive reset.”
None of these references recite a “wireless router” as a device whose firmware will be upgraded. Only Georges (2008/0156178) mentions any of the “802.11” wireless communication standards, and that is not in connection with router firmware upgrades because Georges does not mention “routers” at all.
None of these references mention “checking” to see whether the size of a firmware image is at least two chunk sizes smaller than a device's flash memory storage capacity.
With regard to remapping a ROM memory address to a RAM memory address in the context of a firmware upgrade, only two of the references mention “remapping” an address in any context, namely, Moore, et al. (2006/0047920) and Shamoon, et al. (2004/0107356). However, Moore's Abstract directs attention at how to “enable one-time or few-time programmable memories to work with existing consumer electronic devices (such as those that work with flash—an erasable, non-volatile memory) without requiring a firmware upgrade . . . ” (emphasis added). Shamoon directs attention to remapping for security. Shamoon [0310] recites “circuitry which remaps some of the available memory space, so that, in unsecure mode, the CPU cannot address secure memory locations.” Shamoon [0312] similarly recites “Some memory space may be rendered off-limits to general purpose uses, for example by remapping”.
With regard to writing firmware to both flash memory and a volatile RAM disk, none of these references mention a “RAM disk” or a “RAM drive”.
United States Patent Application Publication No. 2003/0066062 by Brannock, et al. recites that a method for updating platform firmware is disclosed. Brannock further recites that this capability is facilitated by a standard software abstraction for a firmware storage device, known as Firmware Volume (FV) that is managed through a Firmware File System (FFS). The FFS enables firmware files to be created, deleted, and updated individually. The FFS also enables a plurality of firmware files to be updated atomically by managing file state information via state bits stored in a file header of each firmware file, whereby an atomic change to a single state bit simultaneously causes the FFS to use an updated set of firmware files in place of an original set of firmware files.
United States Patent Application Publication No. 2004/0083469 by Chen, et al. recites that an update method is used in an optical disk system to update firmware information stored in a firmware memory. Chen further recites that the method includes fetching program code and an update program routine from an update source, storing the program code into a first buffer, storing the update program routine into a second buffer, executing the update program routine stored in the second buffer, writing the program code stored in the first buffer into the firmware memory to update the firmware information, and changing a value of a program counter of the microprocessor such that the microprocessor executes the program code stored in the firmware memory at a predetermined location of the program code instead of executing a next instruction in the program code located after the current position of the program counter, and using the program code as updated firmware information to control the optical disk system.
United States Patent Application Publication No. 2005/0027807 by Fengler, et al. recites that systems and methods for facilitating peripheral device firmware installation are disclosed. Fengler further recites that in one embodiment, a system and a method pertain to transmitting a firmware availability notification, receiving a firmware download request, and transmitting a firmware file to a peripheral device for installation on the peripheral device. In another embodiment, a system and a method pertain to receiving a firmware availability notification with a peripheral device, and providing a related notification to a user, the related notification being provided by the peripheral device.
United States Patent Application Publication No. 2005/0055595 by Frazer, et al. recites that a system for remotely updating software on at least one electronic device connected to a network is disclosed. Frazer further recites that the electronic devices have a non-volatile rewritable storage unit divided into at least two partitions, one of which will contain core firmware and the other of which will contain auxiliary software. When an update is received at the device, the updated core firmware is written to overwrite the partition in the rewritable storage unit that contained the auxiliary software. When this is completed and verified, the previous version of the core firmware stored in the storage unit is disabled from execution by the device. Next, the updated auxiliary software is written to overwrite the old version of the core firmware. When this write is complete, the device determines a suitable time for it to be rebooted to execute the updated software. In another embodiment, the present core firmware in the device is copied from the partition it is in to the other partition, overwriting the auxiliary software stored there. The new core firmware received to update the device is overwritten into the first partition, the old copied core firmware being present in case of an upgrade failure, and upon a successful update of the first partition, the auxiliary software is written to the second partition, overwriting the copied old core firmware. In this manner, the position of the core firmware and auxiliary software within the partitions is preserved during normal operation of the device.
United States Patent Application Publication No. 2008/0156178 by Georges, et al. recites that systems and methods for creating, modifying, interacting with and playing music are provided, particularly systems and methods employing a top-down process, where the user is provided with a musical composition that may be modified and interacted with and played and/or stored (for later play). In an unusually long Abstract which is not fully reproduced here, Georges also recites that the system preferably is provided in a handheld form factor, and a graphical display is provided to display status information, graphical representations of musical lanes or components which preferably vary in shape as musical parameters and the like are changed for particular instruments or musical components such as a microphone input or audio samples. An interactive auto-composition process preferably is utilized that employs musical rules and preferably a pseudo random number generator, which may also incorporate randomness introduced by timing of user input or the like, the user may then quickly begin creating desirable music in accordance with one or a variety of musical styles, with the user modifying the auto-composed (or previously created) musical composition, either for a real time performance and/or for storing and subsequent playback. The remainder of the Abstract may be read in Georges itself.
United States Patent Application Publication No. 2006/0143475 by Herbert, et al. recites that a method according to one embodiment may include: receiving a first encrypted signal at a server of a computing network, the first encrypted signal comprising firmware encrypted by a first encryption algorithm having a first complexity level; sending a second encrypted signal over the computing network to at least one managed client in response to the first encrypted signal, the second encrypted signal comprising the firmware encrypted by a second encryption algorithm having a second complexity level, wherein said first complexity level is greater than said second complexity level; and updating existing firmware of the at least one managed client in response to receipt of the second signal at the at least one managed client. Herbert further recites that many alternatives, variations, and modifications are possible without departing from this embodiment.
United States Patent Application Publication No. 2005/0097542 by Lee recites that a firmware update method is disclosed. First, a tag is written to a firmware storage device. Next, first firmware in the firmware storage device is replaced by second firmware. If the replacing step is successful, the tag is deleted. Before the execution of the second firmware, a verification operation is executed. If the tag is not present, the second firmware is executed. If the tag is present, an abnormity processing procedure is executed. The abnormity processing procedure terminates of execution of the second firmware, reads third firmware via an interface, and replaces the second firmware with the third firmware.
United States Patent Application Publication No. 2005/0039178 by Marolia, et al. recites that aspects of an invention may be seen in a system and method for downloading update packages into an electronic device communicatively coupled to a carrier network. Marolia further recites that the system may facilitate the update of firmware/software in the electronic device. Different protocols may be utilized for discovery and download of update packages. Also, different protocols may be utilized for provisioning and for subsequent downloading of update packages.
United States Patent Application Publication No. 2002/0073304 by Marsh, et al. recites that a system and a method that uses a software application operable under a current firmware/operating system configuration to install a new firmware version without “compromising” the operating system are presented. Marsh further recites that the software application may configure a computer system to install a plurality of software fixes configured to enhance functionality under a new firmware/operating system environment after the firmware has been successfully upgraded. Such functionality enhancements may be associated with external peripherals, as well as, input/output circuit cards, processors, and the like. In addition, the software application may configure the computing device to “boot” under the new firmware/operating system environment upon subsequent system initializations. Furthermore, the software application permits the distribution of firmware upgrades via a network. The capability to install firmware remotely permits a system administrator to “push” the new firmware to a plurality of network coupled computing devices, thus avoiding manual intervention at each device.
United States Patent Application Publication No. 2006/0047920 by Moore, et al. recites that embodiments described therein can be used to enable one-time or few-time programmable memories to work with existing consumer electronic devices (such as those that work with flash—an erasable, non-volatile memory) without requiring a firmware upgrade, thereby providing backwards compatibility while minimizing user impact. Moore further recites that as such, these embodiments are a viable way to bridge one-time or few-time programmable memories with existing consumer electronic devices that have flash card slots. These embodiments also allow future consumer electronic devices to be designed without updating firmware to include a file system customized for a one-time or few-time programmable memory.
United States Patent Application Publication No. 2003/0236970 by Palmer, et al. recites that in a data processing method and system a mass storage device (DASD) of a data processing system is partitioned to include a service partition. Palmer further recites that the service partition is typically located on a portion of the DASD beyond the highest address accessible to the operating system and application programs. The service partition will typically include the current versions of peripheral device firmware, any BIOS extensions, and device drivers. During a system boot, the boot code will invoke a peripheral device call that reports the device's firmware version level to compare the firmware versions of all the peripheral devices against the archived firmware versions stored in the service partition. If a mismatch is detected, the system boot will typically force an update of the peripheral device firmware to the level that is known to be good. Any such firmware updates are recorded in a log that is accessible to system management applications. Any revisions to firmware may be imaged into the service partition so that the revised version will be incorporated into the peripheral device itself during the next subsequent system boot.
United States Patent Application Publication No. 2004/0015941 by Sekine recites that an information-processing apparatus includes a nonvolatile memory device configured to store firmware. Sekine further recites that the information-processing apparatus has a first unit for issuing an instruction to make an operating system execute a shutdown process, and to update the firmware, stored in the nonvolatile memory device, after the operating system has completed the shutdown process. The information-processing apparatus also has a second unit, responsive to the instruction to update the firmware, for updating the firmware only after the operating system has completed the shutdown process.
United States Patent Application Publication No. 2004/0107356 by Shamoon, et al. recites that a novel method and apparatus for protection of streamed media content is disclosed. Shamoon further recites that in one aspect, the apparatus includes control means for governance of content streams or content objects, decryption means for decrypting content streams or content objects under control of the control means, and feedback means for tracking actual use of content streams or content objects. The control means may operate in accordance with rules received as part of the streamed content, or through a side-band channel. The rules may specify allowed uses of the content, including whether or not the content can be copied or transferred, and whether and under what circumstances received content may be “checked out” of one device and used in a second device. The rules may also include or specify budgets, and a requirement that audit information be collected and/or transmitted to an external server. In a different aspect, the apparatus may include a media player designed to call plugins to assist in rendering content. A “trust plugin” is disclosed, along with a method of using the trust plugin so that a media player designed for use with unprotected content may render protected content without the necessity of requiring any changes to the media player. In one aspect, the streamed content may be in a number of different formats, including MPEG-4, MP3, and the RMFF format.
United States Patent Application Publication No. 2005/0021968 by Zimmer, et al. recites that a method for providing a secure firmware update is disclosed. This Zimmer application further recites that a first authentication credential is securely stored on a platform in an encrypted form using a key generated by a secure token, such as a trusted platform module (TPM). Typically, the authentication credential will identify a manufacture and the operation will be performed during manufacture of the platform. A configuration of the platform is “imprinted” such that an identical configuration is required to access the key used to decrypt the first authentication credential by sealing the key against the platform configuration. During a subsequent firmware update process, a firmware update image containing a second authentication credential is received at the platform. If the platform configuration is the same as when the key was sealed, the key can be unsealed and used for decrypting the first authentication credential. A public key in the first authentication credential can then be used to authenticate the firmware update image via the second authentication credential.
United States Patent Application Publication No. 2005/0289646 by Zimmer, et al. recites disclosure of a method of copying virtual firmware smart card code from a first secured memory in a system and loading the virtual firmware smart card code into a second secured memory in the system so that the code may be run on a microprocessor to provide smart card services to the system.